﻿var focusElement;

// Funksjon som lager xml objektet for ajax funksjonaliteten
function getXMLHttp() {
	var xmlHttp

	try  {
		//Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}

	catch(e) {
		//Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				alert("Your browser does not support AJAX!")
				return false;
			}
		}
	}
	return xmlHttp;
}

function lagreTabell() {
	if (event.keyCode == 13) {
		loadXMLDoc("save");	
	}
}

function findFocusElement () {
	focusElement = document.activeElement;
}

function loadXMLDoc(request) {
	/*
	* request = vlan --> henter ut vlan tabell
	* request = subn --> henter ut subnett tabell
	* request = save --> lagrer en celle fra en tabell
	* 
	*/
		
	switch(request) {
		// Hente vlan tabell
		case "vlan":
			document.getElementById("display_area").innerHTML = "Henter ut data";
			var xmlHttpRequest = getXMLHttp();
			
			if (xmlHttpRequest != false) { 
				var vlanBox = document.getElementById('vlan_dropdown');
				var vlan = vlanBox.options[vlanBox.selectedIndex].value;
				xmlHttpRequest.open("GET", "hentVlanTabell.php?vlan="+vlan, true);
				xmlHttpRequest.send();
				xmlHttpRequest.onreadystatechange = function() {
					if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
						document.getElementById("display_area").innerHTML = xmlHttpRequest.responseText;
						$(document).ready(function() 
							{ 
								$("#infoTable").tablesorter(); 
							} 
						); 
					}
				}
			}
			else
				alert("Noe gikk feil under oppretting av ajax objektet");
			break;
		
		// Søker etter ip adresser
		case "ipSok":
			document.getElementById("display_area").innerHTML = "Henter ut data";
			var xmlHttpRequest = getXMLHttp();
			
			if (xmlHttpRequest != false) { 
				var sok = document.getElementById('sokeFelt').value;
				xmlHttpRequest.open("GET", "hentIpAdresserSok.php?sok="+sok, true);
				xmlHttpRequest.send();
				xmlHttpRequest.onreadystatechange = function() {
					if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
						document.getElementById("display_area").innerHTML = xmlHttpRequest.responseText;
						$(document).ready(function() 
							{ 
								$("#infoTable").tablesorter(); 
							} 
						); 
					}
				}
			}
			else
				alert("Noe gikk feil under oppretting av ajax objektet");
			
		
			break;
		
		
		// Hente subnett tabell
		case "subn":
			document.getElementById("display_area").innerHTML = "Henter ut data";
			var xmlHttpRequest = getXMLHttp();
			
			if (xmlHttpRequest != false) { 
				xmlHttpRequest.open("GET", "hentSubnettTabell.php", true);
				xmlHttpRequest.send();
				xmlHttpRequest.onreadystatechange = function() {
					if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
						document.getElementById("display_area").innerHTML = xmlHttpRequest.responseText;
						$(document).ready(function() 
							{ 
								$("#infoTable").tablesorter(); 
							} 
						); 
					}
				}
			}
			else
				alert("Noe gikk feil under oppretting av ajax objektet");
			break;
		
		// Lagre vlan tabell (sikkert subnett tabell og senere)
		case "save":
			var xmlHttpRequest = getXMLHttp();
			var celleClassName = focusElement.className;
			// radID[1] = id på raden som skal lagres i ipserie tabellen i databasen
			var radID = celleClassName.split("_");
			var tabellCeller = document.getElementsByClassName(celleClassName);
			var celleInfo = new Array();
			var getVariabler = "id="+ radID[1];
			var i;
			for (i = 0; i < tabellCeller.length; i++) {
				celleInfo[i] = tabellCeller[i].innerHTML;
				switch (i) {
					case 0:
						getVariabler = getVariabler + "&vlan=" + tabellCeller[i].innerHTML;
						break;
					case 1:
						getVariabler = getVariabler + "&adresse=" + tabellCeller[i].innerHTML;
						break;
					case 2:
						getVariabler = getVariabler + "&beskrivelse=" + tabellCeller[i].innerHTML;
						break;
					case 3:
						getVariabler = getVariabler + "&subnett=" + tabellCeller[i].innerHTML;
						break;
					case 4:
						getVariabler = getVariabler + "&gateway=" + tabellCeller[i].innerHTML;
						break;
					case 5:
						getVariabler = getVariabler + "&dns_oppforing=" + tabellCeller[i].innerHTML;
						break;
					case 6:
						getVariabler = getVariabler + "&plassering=" + tabellCeller[i].innerHTML;
						break;
					case 7:
						getVariabler = getVariabler + "&type=" + tabellCeller[i].innerHTML;
						break;
					case 8:
						getVariabler = getVariabler + "&diverse=" + tabellCeller[i].innerHTML;
						break;
				}
			}
			
			if (xmlHttpRequest != false) { 
				xmlHttpRequest.open("GET", "lagreVlanTabell.php?" + getVariabler, true);
				xmlHttpRequest.send();
				xmlHttpRequest.onreadystatechange = function() {
					if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
						// skal vel egentlig ikke behøve i gjøre noe her når lagringen er ferdig
						// kanskje legge til en melding om at det er lagret
						loadXMLDoc("vlan");
						
						//alert(xmlHttpRequest.responseText);
					}
				}
			}
			else
				alert("Noe gikk feil under oppretting av ajax objektet");
			break;
	}	
}